Surface Remplissage |
Emplacement du menu |
---|
Surface → Filling... |
Ateliers |
Surface |
Raccourci par défaut |
Aucun |
Introduit dans la version |
0.17 |
Voir aussi |
Aucun |
Surface Remplissage crée une surface à partir d'une série d'arêtes de délimitation connectées. La courbure de la surface peut être contrôlée en outre par des arêtes et des sommets non délimités, ainsi que par une surface de support.
La géométrie de base peut appartenir à des courbes créées avec l'atelier Draft ou l'atelier Sketcher, mais aussi à des objets solides tels que ceux créés avec l'atelier Part ou l'atelier PartDesign.
Deux surfaces remplies délimitées par quatre arêtes situées sur le plan XY. La surface de droite est en plus contrôlée par une arête non délimitée.
Surface de support agit comme une contrainte supplémentaire pour la surface. L'exemple simple suivant vous donnera une idée de la façon dont cela fonctionne :
180°
.
Surface Remplissage (classe Surface::Filling
) est dérivée de la classe de base Part Feature (classe Part::Feature
via la sous-classe Part::Spline
), elle partage donc toutes les propriétés de cette dernière.
Outre les propriétés décrites dans Part Feature, Surface Remplissage a les propriétés suivantes dans l'éditeur de propriétés.
Filling
LinkSubList
) : arêtes de frontière; C0 est requis pour les arêtes sans face correspondante.StringList
) :IntegerList
) : ordre de contrainte sur les faces limites : 0
, 1
et 2
sont possibles.LinkSubList
) : arêtes de contrainte non liés; C0 est requis pour les arêtes sans face correspondante.StringList
) :IntegerList
) : ordre de contrainte sur les faces non liées : 0
, 1
et 2
sont possibles.LinkSubList
) : contrainte libre sur une face.IntegerList
) : ordre de contrainte sur les faces libres.LinkSubList
) : points de contrainte sur la surface.LinkSub
) : surface initiale à utiliser.Integer
) : degré de départ, par défaut 3
.Integer
) : nombre de points sur une arête pour la contrainte.Integer
) : nombre d'itérations, par défaut 2
.Bool
) : par défaut false
.Float
) : tolérance 2D, par défaut 0.0
.Float
) : tolérance 3D, par défaut 0.0
.Float
) : tolérance G1, par défaut 0.01
.Float
) : tolérance G2, par défaut 0.10
.Integer
) : degré maximum de la courbe, par défaut 8
.Integer
) : nombre maximum de segments, par défaut 9
.
Base
Bool
) : par défaut false
. Mis à true
, elle affichera une superposition avec les points de contrôle de la surface.
Voir aussi : FreeCAD Script de base.
L'outil Remplissage de Surface peut être utilisé dans des macros et depuis la console Python en ajoutant l'objet Surface :: Filling
.
BoundaryEdges
de l'objet.UnboundEdges
et Points
de l'objet.import FreeCAD as App
import Draft
doc = App.newDocument()
a = App.Vector(-20, -20, 0)
b = App.Vector(-18, 25, 0)
c = App.Vector(60, 26, 0)
d = App.Vector(33, -20, 0)
points1 = [a, App.Vector(-20, -8, 0), App.Vector(-17, 7, 0), b]
obj1 = Draft.make_bspline(points1)
points2 = [b, App.Vector(0, 25, 0), c]
obj2 = Draft.make_bspline(points2)
points3 = [c, App.Vector(37, 4, 0), d]
obj3 = Draft.make_bspline(points3)
points4 = [d, App.Vector(-2, -18, 0), a]
obj4 = Draft.make_bspline(points4)
doc.recompute()
surf = doc.addObject("Surface::Filling", "Surface")
surf.BoundaryEdges = [(obj1, "Edge1"),
(obj2, "Edge1"),
(obj3, "Edge1"),
(obj4, "Edge1")]
doc.recompute()
# ---------------------------------------------------------
points_spl = [App.Vector(-10, 0, 2),
App.Vector(4, 0, 7),
App.Vector(18, 0, -5),
App.Vector(25, 0, 0),
App.Vector(30, 0, 0)]
aux_edge = Draft.make_bspline(points_spl)
doc.recompute()
surf.UnboundEdges = [(aux_edge, "Edge1")]
doc.recompute()
# ---------------------------------------------------------
aux_v1 = Draft.make_line(App.Vector(-13, -12, 5),
App.Vector(-13, -12, -5))
aux_v2 = Draft.make_line(App.Vector(-3, 18, 5),
App.Vector(-3, 18, -5))
doc.recompute()
surf.Points = [(aux_v1, "Vertex2"),
(aux_v2, "Vertex1")]
doc.recompute()